/*
 * @Author: 火红色祥云 201926154@qq.com
 * @Date: 2024-12-08 11:40:12
 * @LastEditors: 火红色祥云 201926154@qq.com
 * @LastEditTime: 2025-02-23 13:19:23
 * @FilePath: \proj_esp8266\src\led\led.cpp
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include "led.h"

const int LED_Pin = 8;              //单片机LED引脚值，DX是NodeMcu引脚命名方式，其他esp8266型号将D0改为自己的引脚，比如 const int LED_Pin = 0; 

/**
 * LED初始化函数
 * 
 * 该函数用于初始化LED引脚为输出模式，以便后续对LED进行控制
 * 通过设置引脚为输出模式，可以确保在程序运行过程中，能够通过该引脚输出电信号来控制LED的亮灭
 */
void led_init(void)
{
    // 设置LED引脚为输出模式
    pinMode(LED_Pin,OUTPUT);
}
//打开灯泡
void led_off()
{
  digitalWrite(LED_Pin,LOW);
}
//关闭灯泡
void led_on()
{
    digitalWrite(LED_Pin,HIGH);
}

void led_ctrl(bool flag)
{
    if(flag)
    {
        led_on();
    }
    else
    {
        led_off();
    }
}

void led_toggle(void)
{
    static bool ledState = false;
    ledState = !ledState;
    digitalWrite(LED_Pin, ledState ? HIGH : LOW);
}

/**
 * LED快闪函数
 * 
 * 该函数用于控制LED以指定的次数进行快闪
 * 
 * @param flash_count 快闪次数
 */
void led_blink(int flash_count)
{
    for (int i = 0; i < flash_count; ++i) 
    {
        digitalWrite(LED_Pin, HIGH);  // 点亮LED
        delay(500);                   // 延时500毫秒
        digitalWrite(LED_Pin, LOW);   // 熄灭LED
        delay(500);                   // 延时500毫秒
    }
}